// pages/goods/list/index.js
import { reqGoodsList } from '../../../api/goods'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    goodsList: [], // 商品列表数据
    isFinish: false, // 判断数据是否加载完毕
    total: 0, // 数据总条数
    isLoading: false,// 判断数据是否加载完毕

    requestData: {
      page: 1, // 页码
      limit: 10, // 每页请求的条数
      category1Id: '', // 一级分类id
      category2Id: '' // 二级分类id
    }
  },

  // 获取商品列表数据：
  async getGoodsList() {

    this.data.isLoading = true // 请求正在发送中

    // 发送请求
    const { data } = await reqGoodsList(this.data.requestData)

    this.data.isLoading = false // 请求结束

    this.setData({
      goodsList: [...this.data.goodsList, ...data.records],
      total: data.total
    })
  },

  // 监听页面上拉操作：
  onReachBottom() {
    // 解构：
    const { goodsList, total, requestData, isLoading } = this.data
    const { page } = requestData // 解构数据

    // 判断 isLoading 状态：
    // true ： 请求正在发送中,不请求下一页数据
    if (isLoading) return
    // 让 goodsList 与 total 进行对比：
    // 相等，表示商品加载完毕
    if (goodsList.length === total) {
      this.setData({
        isFinish: true
      })
      return
    }

    // 赋值：页码 + 1
    this.setData({
      requestData: { ...this.data.requestData, page: page + 1 }
    })

    //  重新获取商品列表：
    this.getGoodsList()
  },

  // 监听页面下拉刷新操作：
  onPullDownRefresh() {

    // 将 数据 进行重置：
    this.setData({
      goodsList: [],
      total: 0,
      isFinish: false,
      requestData: { ...this.data.requestData, page: 1 }
    })

    // 使用最新的参数发送请求
    this.getGoodsList()

    // 手动关闭下拉刷新的效果
    wx.stopPullDownRefresh()
  },

  onLoad(options) {
    Object.assign(this.data.requestData, options)

    // 调用获取商品列表数据的方法：
    this.getGoodsList()
  },

  // 转发功能
onShareAppMessage() {
  return {
    title: '所有的怦然心动，都是你',
    path: '/pages/index/index',
    imageUrl: '../../assets/images/love.jpg'
  }
},

// 转发到朋友圈功能
onShareTimeline() {}

})
